﻿#!/bin/sh

# 子模块初始化与切换脚本
# 功能：初始化Git子模块，更新到最新内容，并切换到指定分支

# .gitlab-ci.yml->before_script
# export CODE_DIR="/path/to/your/code" 
# cd $CODE_DIR/docker/script && pwd && chmod +x gitinit.sh && gitinit.sh

# 设置代码目录路径（请根据实际情况修改 CODE_DIR 的值）
# export CODE_DIR="production"
# CODE_DIR="/path/to/your/code"  # 修改为您的实际代码目录路径

# 检查代码目录是否存在
if [ ! -d "$CODE_DIR" ]; then
    echo "错误: 代码目录 $CODE_DIR 不存在，请检查路径设置。"
    exit 1
fi

echo "开始处理子模块..."
echo "代码目录: $CODE_DIR"

# 进入代码目录
cd "$CODE_DIR" || { echo "无法进入目录 $CODE_DIR"; exit 1; }

# 1. 初始化子模块
echo "正在初始化子模块..."
git submodule init

# 2. 更新子模块（远程和递归）
echo "正在更新子模块（远程和递归）..."
git submodule update --remote --recursive

# 3. 切换到特定分支
echo "正在切换子模块分支..."

# 切换到 ant-design-blazor 的指定分支
echo "切换到 ant-design-blazor 的 SageKingAntDesign 分支..."
cd "$CODE_DIR/external/ant-design-blazor" && git checkout SageKingAntDesign && git pull

# 切换到 BlazorSize 的指定分支  
echo "切换到 BlazorSize 的 SageKingBlazorSize 分支..."
cd "$CODE_DIR/external/BlazorSize" && git checkout SageKingBlazorSize  && git pull

# 切换到 MediatR 的指定分支
echo "切换到 MediatR 的 SageKingMediatRV12.5.0 分支..."
cd "$CODE_DIR/external/MediatR" && git checkout SageKingMediatRV12.5.0  && git pull

# 返回原始目录
cd "$CODE_DIR"
git pull origin $Branch

echo "所有子模块操作完成！"
echo "当前各子模块状态："
git submodule status